# 先把给的数据拉链后按x递增（若多个x相同按y递减）排序
# 然后找到y对应的序列的最长递增子序列的个数几位要求的个数
from bisect import bisect_left
T = int(input())
for _ in range(T):
    n = int(input())
    X = map(int, input().split())
    Y = map(int, input().split())
    # 拉链函数，吧两个列表的对应索引的元素组成一个元组，放在一个列表里返回，以最短的列表为基准
    # 首先按x[0] 递增排，然后x[0]相同的数对应的x[1]递减排
    a = sorted(zip(X, Y), key=lambda x: (x[0], -x[1]))
    total = 0
    q = [0] * 100005
    # 寻找最长的递增子序列的长度
    for i in range(n):
        # 二分法寻找插入位置， 返回该插入位置得到索引，有相同的则返回左边的位置
        t = bisect_left(a=q, x=a[i][1], lo=0, hi=total)
        # 如果要插入的位置在列表最好=后一个元素的后边，则个数+1
        if t == total:
            total += 1
        # 否则，直接把要插入的元素插入对应的位置，替换掉原来的数
        q[t] = a[i][1]
    print(total)

"""1
2
3
1 3 2
0 2 3
4
1 5 4 2 
10 32 19 21
"""
